package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hbnu.system.config.PostDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * 
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("identify")
public class Identify implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 鉴定编号
     */
    @ApiModelProperty(value = "鉴定编号")
    @TableId(value = "IdentifyID", type = IdType.ASSIGN_ID)
    private String IdentifyID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    @TableField("organization")
    private String organization;

    /**
     * 鉴定号
     */
    @ApiModelProperty(value = "鉴定号")
    @TableField("identifyNum")
    private String identifyNum;

    /**
     * 成果名称
     */
    @ApiModelProperty(value = "成果名称")
    @TableField("achievementName")
    private String achievementName;

    /**
     * 鉴定部门
     */
    @ApiModelProperty(value = "鉴定部门")
    @TableField("identifyDept")
    private String identifyDept;

    /**
     * 鉴定日期
     */
    @ApiModelProperty(value = "鉴定日期")
    @TableField("identifyDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate identifyDate;

    /**
     * 鉴定级别
     */
    @ApiModelProperty(value = "鉴定级别")
    @TableField("identifyLevel")
    private String identifyLevel;

    /**
     * 鉴定结论
     */
    @ApiModelProperty(value = "鉴定结论")
    @TableField("identifyResult")
    private String  identifyResult;

    /**
     * 科技成果登记证书号
     */
    @ApiModelProperty(value = "科技成果登记证书号")
    @TableField("certificateID")
    private String certificateID;

    /**
     * 完成形式
     */
    @ApiModelProperty(value = "完成形式")
    @TableField("completionForm")
    private String completionForm;

    /**
     * 学科门类
     */
    @ApiModelProperty(value = "学科门类")
    @TableField("discipline")
    private String discipline;

    /**
     * 学校署名
     */
    @ApiModelProperty(value = "学校署名")
    @TableField("schoolSigned")
    private String schoolSigned;

    /**
     * 附件
     */
    @ApiModelProperty(value="附件")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] annex;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("notes")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @TableField("enteredDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate enteredDate;

    /**
     * 所有作者
     */
    @ApiModelProperty(value = "所有作者")
    @TableField("allAuthor")
    private String allAuthor;

    /**
     * 关联项目
     */
    @ApiModelProperty(value = "关联项目")
    @TableField("associatedProjects")
    private String associatedProjects;

    /**
     * 审核状态
     */
    @ApiModelProperty(value = "审核状态")
    @TableField("status")
    private String status;

    /**
     * 未通过原因
     */
    @ApiModelProperty(value="未通过原因")
    @TableField(value = "reason")
    private String reason;

    /**
     * 第二作者
     */
    @ApiModelProperty(value = "第二作者")
    @TableField("secondAuthor")
    private String secondAuthor;

    /**
     * 第三作者
     */
    @ApiModelProperty(value = "第三作者")
    @TableField("thirdAuthor")
    private String thirdAuthor;

    /**
     * 第四作者
     */
    @ApiModelProperty(value = "第四作者")
    @TableField("fourthAuthor")
    private String fourthAuthor;

    /**
     * 第五作者
     */
    @ApiModelProperty(value = "第五作者")
    @TableField("fifthAuthor")
    private String fifthAuthor;

    /**
     * 第六作者
     */
    @ApiModelProperty(value = "第六作者")
    @TableField("sixthAuthor")
    private String sixthAuthor;

    /**
     * 第七作者
     */
    @ApiModelProperty(value = "第七作者")
    @TableField("seventhAuthor")
    private String seventhAuthor;

    /**
     * 第八作者
     */
    @ApiModelProperty(value = "第八作者")
    @TableField("eighthAuthor")
    private String eighthAuthor;

    /**
     * 第九作者
     */
    @ApiModelProperty(value = "第九作者")
    @TableField("ninthAuthor")
    private String ninthAuthor;
    /**
     * 通讯作者
     */
    @ApiModelProperty(value = "通讯作者")
    @TableField("correspondingAuthor")
    private String correspondingAuthor;
    /**
     * 第一作者
     */
    @ApiModelProperty(value = "第一作者")
    @TableField("leadAuthor")
    private String leadAuthor;
    /**
     * 院系
     */
    @ApiModelProperty(value = "院系")
    @TableField("dept")
    private String dept;
}
